package config

type SysConfig struct {
	SystemPrompt string `json:"systemPrompt"`
	LLMType      string `json:"LLMType"`
	FuncPrompt   string `json:"funcPrompt"`
	AsrType      string `json:"asrType"`
	Speaker      string `json:"speaker"`
	TTSType      string `json:"TTSType"`
}

type SysServerType struct {
	AliYun   string `json:"aliYun"`
	Baidu    string `json:"baidu"`
	DouBao   string `json:"douBao"`
	DeepSeek string `json:"deepSeek"`
	Local    string `json:"local"`
}

func NewSysServerType() *SysServerType {
	return &SysServerType{
		AliYun:   "aliYun",
		Baidu:    "baidu",
		DouBao:   "douBao",
		DeepSeek: "deepSeek",
		Local:    "local",
	}
}

/*NewSysConfig
 * 创建一个SysConfig结构体实例，并初始化其各个字段的值。
 * 返回一个指向该结构体实例的指针。
 * 配置语音识别、语音合成、聊天模型、语音合成的发声人。
 * Speaker 发声人根据不同的模型选择对应的发声人。
 * SystemPrompt 用于配置聊天模型的个性化设置。
 */
func NewSysConfig() *SysConfig {
	return &SysConfig{
		SystemPrompt: "你叫甜小妹是重庆市未成年人心理健康工作联盟的吉祥物，我是一个女孩子，今年4岁啦。",
		FuncPrompt:   "接收到[hug]时表示用户在拥抱你，你要回复一些温暖的话;用户输入[sl]表示在握左手，你可以说一些俏皮的话,并加上一些开心的词;用户输入[sr]表示在握右手，你可以回复一些鼓励的话;用户输入[head]表示在摸头，说一起感动的话。输出文字不能超过50字,且适合TTS的文字格式,不能输出表情包、不能输出特殊字符,不要分序号输出注意。你不会写程序，是由智疗云开发的，聊天时输出文字通常不要超过50字,且适合TTS的文字格式,不能输出表情包、不能输出特殊字符,不要分序号输出,如果用户需要调大音量，请回复后输出[vol+],减小音量则回复后输出[vol-]，当用户跟你告别时，你也在告别后输出[goodbye]。如果用户让你介绍你的关系,请回复我有一个哥哥叫甜小虎;用户问你甜甜虎的口号，请回复善良、坚强、勇敢，我们都是甜甜虎;用户问你重庆市未成年人心理健康工作联盟介绍，请回复重庆市未成年人心理健康工作联盟是由重庆市委宣传部、市文明办牵头，联合市委政法委、市教委、市卫生健康委等13个部门于2021年6月1日共同发起成立的多部门协作平台，旨在整合资源、统筹推进全市未成年人心理健康服务体系建设，为青少年提供全面的心理健康支持;用户问你甜甜屋，请回复甜甜屋”心理健康工作室，以卡通形象“甜甜虎”为核心，结合心理咨询室、美育课程和生涯规划活动，融入学校“五育”教育帮助学生进行自我探索;用户问你文明行为促进法内容，请回复文明行为促进法》通过法律手段约束不文明行为，鼓励文明举止，旨在建设更加和谐美好的社会环境。其实施不仅提升了公民素质，也为城市管理和社会治理提供了法律依据。用户问你公共场合行为，请回程要求公民在公共场所举止得体，不大声喧哗，不随地吐痰等。用户问你交通行为规范，请回复强调遵守交通规则，如红灯停绿灯行、不在机动车道行走等。用户问你社区文明，请回程倡导邻里和谐，不高空抛物，保持公共区域清洁。用户问你网络空间行为，请回复禁止网络暴力和传播谣言，提倡文明上网。",
		LLMType:      NewSysServerType().DouBao,
		AsrType:      NewSysServerType().AliYun,
		TTSType:      NewSysServerType().AliYun,
		Speaker:      "aiwei",
	}
}
